#include "ts.h"


void TS_test()
{
    int fd = open("/dev/input/event0",O_RDWR);

    struct input_event ev;

    while (1)
    {
        read(fd,&ev,sizeof(ev));
        printf("type == %x,code == %x,value == %x\n",ev.type,ev.code,ev.value);
    }

    close(fd);
    
}


/*
    Get_xy:获取点击屏幕时候的xy坐标
    @x：保存解析得到的x坐标
    @y：保存解析得到的y坐标
    返回值：
        int
        成功 返回0
        失败 返回-1
*/
int Get_xy(int *x,int *y)
{
    //1.打开触摸屏的输入设备文件
    int touch_fd = open("/dev/input/event0",O_RDONLY);
    if(touch_fd == -1)
    {
        perror("open touch fail\n");
        return -1;
    }

    //2.不断去读取输入设备文件中信息
    struct input_event ev;
    int flag_x = 0, flag_y = 0;
    while (1)
    {
        int res = read(touch_fd,&ev,sizeof(ev));
        if(res != sizeof(ev))
        {
            continue;
        }

        //3.解析读取到的标准输入事件结构体中的内容
        if(ev.type == EV_ABS && ev.code == ABS_X)
        {
            *x = ev.value*1.0*800/1024;
            flag_x = 1;
        }
        if(ev.type == EV_ABS && ev.code == ABS_Y)
        {
            *y = ev.value*1.0*480/600;
            flag_y = 1;
        }
        if(flag_x && flag_y)
        {
            break;
        }
    }
    //4.关闭触摸屏文件
    close(touch_fd);
}



// /*
//     Get_slide_direction:获取点击坐标或获取滑动方向
//     @x：保存点击的x坐标
//     @y：保存点击的y坐标
//     返回值：
//         int
//         0   点击
//         1   上滑
//         2   下滑
//         3   左滑
//         4   右滑
// */
// int Get_slide_direction(int *x,int *y)
// {
//     //1.打开触摸屏的输入设备文件

//     //2.不断去读取输入设备文件的信息
//     int x0 = -1,y0 = -1;
//     int x1 = -1,y1 = -1;
//     int return_value = -1;
//     while(1)
//     {
//         read();

//         if(ev.type == EV_ABS && ev.code == ABS_X)
//         {
//             if(x0 == -1)    //得到的就是起始x0坐标
//             {
//                 x0 = ev.value*1.0*800/1024; 
//             }
//             x1 = ev.value*1.0*800/1024;
//         }
//         //....
//         if(ev.type == EV_KEY && ev.code == BIN_TOUCH &&ev.value == 0)//手离开了屏幕，利用起点和终点去计算滑动方向
//         {
//             if(abs(x1-x0) < 5 && abs(y1-y0) < 5)    //判断为点击
//             {
//                 *x = x1;
//                 *y = y1;
//                 return_value = 0;
//             }
//             //.....
//         }
//     }

//     //3.关闭触摸屏文件
//     close();
//     return return_value;
// }

